Pull请求测试

使用包ros_buildfarm,你可以运行构建和测试ROS构建工厂逻辑,运行在你选择的主机上。ROS build farm还为托管在GitHub上的存储库提供拉请求测试。

启用Github上特定存储库的pull请求测试。

对于每个存储库,必须完成以下两件事。

链接Jenkins和你的GitHub存储库

有两种方法可以做到以下几点。对于一些GitHub org单元,这可能已经完成了。如果你需要将其添加到org单元,请联系org单元的维护人员或询问answers.org

  • (推荐) 授予对org unit(即不只是存储库)的访问权限ros-pull-request-builder, ROS构建工厂GitHub用户访问。如下:

    1. 打开"https://github.com/%YOUR_ORG%/%YOUR_REPO%/settings/collaboration".

    2. 在"Collaborators",,添加"ros-pull-request-builder" (在虚线中,如下图所示。)).

    3. 从pulldown选择"Admin".

      Jenkins使用Pull Request 构建插件 来设置webhook,可以触发Jenkins的新或更新的拉请求,并报告状态。因此,存储库所在的GitHub org单元必须向用户授予push, pull 和管理权限

  • 或者,你可以为每个存储库手动设置webhook,以避免在组织单元上需要管理权限(或者如果存储库不在组织中,因此你没有能力提供"Admin"访问)。然后Jenkins用户只需要write权限。

    1. 使用上面的过程来授予"Write"访问权限,而不是"Admin",或者如果存储库不是组织的一部分,添加为协作者,而不需要从不存在的下拉菜单中选择任何东西。
    2. 跳转到"https://github.com/%YOUR_ORG%/%YOUR_REPO%/settings/hooks/new", 然后在相同的界面:

    3. 输入"Payload URL" "http://build.ros.org/ghprbhook/"

    4. 检查:
      • "Let me select individual events."
      • "Issue comment"

      • "Pull request"

      你可以看到如下:

      ros.org_travis_webook_setting1.png

更新rosdistro

你必须将test_pull_requests标志添加到分发文件中特定存储库的source条目中,并将其设置为true。如看到Indigo distribution file。配置选项文档在REP 143.

  • 如果你使用bloom来发布你的软件发布版,在运行的同时有一个选项。

注意,在添加了pull请求之后,通常不会创建工作,直到夜间Jenkins重新配置。

与其他CI系统集成

如果你不想使用官方的Jenkins服务器,你还可以为你的存储库设置任何其他CI系统(例如Travis),同时还可以利用Python包ros_buildfarm提供的逻辑。请查看文档得到一个关于.travis.yml文件示例。

集成使用其他服务

Python包ros_buildfarm 还提供在命令行上运行各种作业的脚本。 pull请求作业只是针对pull请求的特定分支触发的一项工作。 文档描述如何在本地运行开发工作. 这可以用于在本地执行特定任务的任务,也可以用于像Travis这样的服务提供者。

Wiki: cn/buildfarm/Pull request testing (last edited 2018-03-28 11:53:08 by Playfish)